package com.yilin.tms.core.entity.order.transit;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yilin.tms.core.commons.base.BaseDataEntity;
import com.yilin.tms.core.commons.annotation.Explain;
import com.yilin.tms.core.entity.order.goods.GoodsOrderNoteDetail;


import javax.persistence.*;

/**
 * 运单货物节点
 *
 * @author zhangjinyuan
 * @date 2022/10/28
 */
@Entity
@Table(name = "transit_order_note_detail")
@TableName(value = "transit_order_note_detail")
public class TransitOrderNoteDetail extends BaseDataEntity {

    @Column(name = "goods_order_id")
    private String goodsOrderId; //货源ID
    @Column(name = "rob_order_id")
    private String robOrderId;  //抢单ID
    @Column(name = "transit_order_id")
    private String transitOrderId;//运单ID

    @Column(name = "transit_order_note_id")
    private String transitOrderNoteId;//运单节点ID
    @Column(name = "goods_order_note_id")
    private String goodsOrderNoteId;//原货单节点ID
    @Column(name = "goods_order_note_detail_id")
    private String goodsOrderNoteDetailId;//原货单货物 ID

    @Column(name = "rob_order_note_id")
    private String robOrderNoteId;//原抢单节点ID
    @Column(name = "rob_order_note_detail_id")
    private String robOrderNoteDetailId;//原抢单货物 ID

    //货物基本数据
    @Explain("类型名称")
    @Column(name = "goods_type_name")
    private String goodsTypeName;
    @Explain("货物名称")
    @Column(name = "goods_name")
    private String goodsName;
    @Explain("货物描述")
    @Column(name = "goods_describe")
    private String goodsDescribe;

    //货物分配
    @Column(name = "assign_measure")
    private Double assignMeasure= 0D;//分配量
    @Column(name = "assign_transport_cost")
    private Double assignTransportCost= 0D;//按分配运输费 单价计价有效
    //货物装车[用于货物追溯]
    @Column(name = "loading_measure")
    private Double loadingMeasure= 0D;
    @Column(name = "loading_transport_cost")
    private Double loadingTransportCost= 0D;
    //发货
    @Column(name = "deliver_measure")
    private Double deliverMeasure= 0D;
    @Column(name = "deliver_transport_cost")
    private Double deliverTransportCost= 0D;
    //签收
    @Column(name = "receipt_measure")
    private Double receiptMeasure= 0D;
    @Column(name = "receipt_transport_cost")
    private Double receiptTransportCost= 0D;
    //保险及赔付
    @Column(name = "cargo_unit_price")
    private Double cargoUnitPrice = 0D;
    @Column(name = "cargo_threshold")
    private Double cargoThreshold = 0D;

    @Column(name = "diff_indemnity_measure")
    private Double diffIndemnityMeasure= 0D;//磅差
    @Column(name = "diff_indemnity_cost")
    private Double diffIndemnityCost= 0D;

    //毛重 kg 根据运输比计算
    @Column(name = "transit_gross_weight")
    private Double transitGrossWeight= 0D;
    //抢单单价，单价计价有效
    @Column(name = "transit_unit_price")
    private Double transitUnitPrice= 0D;
    //单位 车，吨，千克，方，件，箱 ...
    @Column(name = "measure_unit")
    private String measureUnit;

    /**
     * 查询字段
     */
    @Transient
    @TableField(exist = false)
    private GoodsOrderNoteDetail goodsOrderNoteDetail;

    public Double getDiffIndemnityMeasure() {
        return diffIndemnityMeasure;
    }

    public void setDiffIndemnityMeasure(Double diffIndemnityMeasure) {
        this.diffIndemnityMeasure = diffIndemnityMeasure;
    }

    public Double getDiffIndemnityCost() {
        return diffIndemnityCost;
    }

    public void setDiffIndemnityCost(Double diffIndemnityCost) {
        this.diffIndemnityCost = diffIndemnityCost;
    }

    public Double getCargoUnitPrice() {
        return cargoUnitPrice;
    }

    public void setCargoUnitPrice(Double cargoUnitPrice) {
        this.cargoUnitPrice = cargoUnitPrice;
    }

    public Double getCargoThreshold() {
        return cargoThreshold;
    }

    public void setCargoThreshold(Double cargoThreshold) {
        this.cargoThreshold = cargoThreshold;
    }

    public String getGoodsTypeName() {
        return goodsTypeName;
    }

    public void setGoodsTypeName(String goodsTypeName) {
        this.goodsTypeName = goodsTypeName;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsDescribe() {
        return goodsDescribe;
    }

    public void setGoodsDescribe(String goodsDescribe) {
        this.goodsDescribe = goodsDescribe;
    }

    public String getTransitOrderNoteId() {
        return transitOrderNoteId;
    }

    public void setTransitOrderNoteId(String transitOrderNoteId) {
        this.transitOrderNoteId = transitOrderNoteId;
    }

    public String getGoodsOrderId() {
        return goodsOrderId;
    }

    public void setGoodsOrderId(String goodsOrderId) {
        this.goodsOrderId = goodsOrderId;
    }

    public String getRobOrderId() {
        return robOrderId;
    }

    public void setRobOrderId(String robOrderId) {
        this.robOrderId = robOrderId;
    }

    public String getTransitOrderId() {
        return transitOrderId;
    }

    public void setTransitOrderId(String transitOrderId) {
        this.transitOrderId = transitOrderId;
    }

    public String getGoodsOrderNoteId() {
        return goodsOrderNoteId;
    }

    public void setGoodsOrderNoteId(String goodsOrderNoteId) {
        this.goodsOrderNoteId = goodsOrderNoteId;
    }

    public String getGoodsOrderNoteDetailId() {
        return goodsOrderNoteDetailId;
    }

    public void setGoodsOrderNoteDetailId(String goodsOrderNoteDetailId) {
        this.goodsOrderNoteDetailId = goodsOrderNoteDetailId;
    }

    public String getRobOrderNoteId() {
        return robOrderNoteId;
    }

    public void setRobOrderNoteId(String robOrderNoteId) {
        this.robOrderNoteId = robOrderNoteId;
    }

    public String getRobOrderNoteDetailId() {
        return robOrderNoteDetailId;
    }

    public void setRobOrderNoteDetailId(String robOrderNoteDetailId) {
        this.robOrderNoteDetailId = robOrderNoteDetailId;
    }

    public Double getAssignMeasure() {
        return assignMeasure;
    }

    public void setAssignMeasure(Double assignMeasure) {
        this.assignMeasure = assignMeasure;
    }

    public Double getAssignTransportCost() {
        return assignTransportCost;
    }

    public void setAssignTransportCost(Double assignTransportCost) {
        this.assignTransportCost = assignTransportCost;
    }

    public Double getLoadingMeasure() {
        return loadingMeasure;
    }

    public void setLoadingMeasure(Double loadingMeasure) {
        this.loadingMeasure = loadingMeasure;
    }

    public Double getLoadingTransportCost() {
        return loadingTransportCost;
    }

    public void setLoadingTransportCost(Double loadingTransportCost) {
        this.loadingTransportCost = loadingTransportCost;
    }

    public Double getDeliverMeasure() {
        return deliverMeasure;
    }

    public void setDeliverMeasure(Double deliverMeasure) {
        this.deliverMeasure = deliverMeasure;
    }

    public Double getDeliverTransportCost() {
        return deliverTransportCost;
    }

    public void setDeliverTransportCost(Double deliverTransportCost) {
        this.deliverTransportCost = deliverTransportCost;
    }

    public Double getReceiptMeasure() {
        return receiptMeasure;
    }

    public void setReceiptMeasure(Double receiptMeasure) {
        this.receiptMeasure = receiptMeasure;
    }

    public Double getReceiptTransportCost() {
        return receiptTransportCost;
    }

    public void setReceiptTransportCost(Double receiptTransportCost) {
        this.receiptTransportCost = receiptTransportCost;
    }

    public Double getTransitGrossWeight() {
        return transitGrossWeight;
    }

    public void setTransitGrossWeight(Double transitGrossWeight) {
        this.transitGrossWeight = transitGrossWeight;
    }

    public Double getTransitUnitPrice() {
        return transitUnitPrice;
    }

    public void setTransitUnitPrice(Double transitUnitPrice) {
        this.transitUnitPrice = transitUnitPrice;
    }

    public String getMeasureUnit() {
        return measureUnit;
    }

    public void setMeasureUnit(String measureUnit) {
        this.measureUnit = measureUnit;
    }

    public GoodsOrderNoteDetail getGoodsOrderNoteDetail() {
        return goodsOrderNoteDetail;
    }

    public void setGoodsOrderNoteDetail(GoodsOrderNoteDetail goodsOrderNoteDetail) {
        this.goodsOrderNoteDetail = goodsOrderNoteDetail;
    }

}
